﻿Ext.define('ListadoEvolucionPrecios', {
    extend: 'FormBase',
    Title: 'Formulario Listado de Evolución de Precios',
    Proxy: 'Handlers/Mantenimiento/Listados/EvolucionPrecios.ashx',
    storeListadoEvolucionArticulos: Ext.create('Ext.data.Store', {
        storeId: 'storeListadoEvolucionArticulos',
        autoLoad: true,
        model: 'Model.EvolucionPrecio',
        remoteFilter: true,
        remoteSort: true,
        sorters: [{
            property: 'id_articulo',
            direction: 'ASC'
        },{
            property: 'fe_precio',
            direction: 'ASC'
        },{
            property: 'descripcion',
            direction: 'ASC'
        }],
        listeners: {
            beforeload: function (str, opr, eOpts) {
                var filter = [];
                for (var itm in Ext.getCmp('pnlFiltros').getValues()) {
                    if (!Ext.isEmpty(Ext.getCmp('pnlFiltros').getValues()[itm])) {
                        var comparison;
                        switch (itm) {
                            case 'id_rubro':
                            case 'id_categ_art':
                                comparison = 'eq';
                                break;
                            default:
                                comparison = 'like';
                        }
                        filter.push({ field: itm, value: Ext.getCmp('pnlFiltros').getValues()[itm], comparison: comparison });
                    }
                }
                str.proxy.extraParams.filter = Ext.JSON.encode(filter);
            }
        }
    }),
    storeRubro: CreateFirstEmptyStore('storeRubro', 'Model.Rubro'),
    storeCategArt: CreateFirstEmptyStore('storeCategArt', 'Model.CategArticulos'),
    Items: [{
        xtype: 'panel',
        frame: true,
        layout: 'vbox',
        items: [{
            xtype: 'form',
            id: 'pnlFiltros',
            title: 'Filtros',
            layout: 'column',
            collapsible: true,
            frame: true,
            width: '100%',
            buttons: [{
                text: 'Buscar',
                handler: function () {
                    Ext.StoreMgr.lookup('storeListadoEvolucionArticulos').reload();
                }
            }, {
                text: 'Exportar',
                iconCls: 'boton-Descargar',
                handler: function () {
                    var dict = CreateForeignStore('exportStore', Ext.getCmp('grdListadoArticulo').getStore().model);
                    dict.load({
                        start: 0,
                        limit: -1,
                        callback: function () {
                            var data = Ext.ux.exporter.Exporter.exportGridStore(Ext.getCmp('grdListadoArticulo'), dict);
                            activeInstance.DescargarExcel(data);
                        }
                    });
                }
            }],
            items: [{
                xtype: 'fieldset',
                columnWidth: 0.5,
                border: false,
                items: [{
                    xtype: 'combobox',
                    fieldLabel: 'Rubro',
                    queryMode: 'local',
                    displayField: 'descripcion',
                    valueField: 'id_rubro',
                    editable: true,
                    forceSelection: true,
                    store: Ext.StoreMgr.get('storeRubro'),
                    name: 'id_rubro'
                }]
            }, {
                xtype: 'fieldset',
                columnWidth: 0.5,
                border: false,
                items: [{
                    xtype: 'combobox',
                    fieldLabel: 'Categoría de Artículo',
                    queryMode: 'local',
                    displayField: 'descripcion',
                    valueField: 'id_categ_art',
                    editable: true,
                    forceSelection: true,
                    store: Ext.StoreMgr.get('storeCategArt'),
                    name: 'id_categ_art'
                }]
            }]
        }, {
            xtype: 'panel',
            title: 'Detalle',
            frame: true,
            width: '100%',
            layout: 'fit',
            flex: 1,
            items: [{
                id: 'grdListadoArticulo',
                xtype: 'grid',
                height: 150,
                store: Ext.StoreMgr.get('storeListadoEvolucionArticulos'),
                bbar: [{
                    xtype: 'pagingtoolbar',
                    store: Ext.StoreMgr.get('storeListadoEvolucionArticulos'),
                    dock: 'bottom',
                    displayInfo: true
                }],
                listeners: {
                    celldblclick: function () {
                        mostrarHistorico(arguments[3].data.id_historial);
                    }
                },
                columns: [
                            { header: 'Código', dataIndex: 'codigo' },
                            { header: 'Descripción', dataIndex: 'descripcion', flex: 1 },
                            { xtype: 'datecolumn', text: 'Fecha', dataIndex: 'fe_precio', filter: true },
                            { header: 'Precio Base', dataIndex: 'precio_bruto', xtype: 'numbercolumn', format: '0.00' },
                            { header: 'Descuento', dataIndex: 'descuento', xtype: 'numbercolumn', format: '0.00' },
                            { header: 'Precio Neto', dataIndex: 'im_precio_neto', xtype: 'numbercolumn', format: '0.00' }
                        ]
            }]
        }]
    }]
});
